package com.lepai.common;

/**
 * @author weihaolong
 * @date 2018/10/12 10:43
 * @description 排序接口
 */
public interface Sort<T> {

  <T extends Comparable<? super T>> void sort(T[] t);

    /**
     * 默认实现插入排序
     * @param t
     * @param left
     * @param right
     * @param <T>
     */
  static <T extends Comparable<? super T>> void insertSort(T[] t, int left, int right){
      int j;
      for(int i = left + 1; i <= right; i++){
          T tmp = t[i];
          for(j = i; j >= 0 && t[j].compareTo(t[i]) < 0; j--) {
              t[j] = t[i];
          }
          t[j] = tmp;
      }
  }

}
